課程資訊
課程名稱
資料結構與演算法
DATA STRUCTURES AND ALGORITHMS 
開課學期
97-2 
授課對象
生物資源暨農學院  生物產業機電工程學研究所  
授課教師
陳倩瑜 
課號
BME5902 
課程識別碼
631 U1250 
班次
 
學分
全/半年
半年 
必/選修
選修 
上課時間
星期二5,6(12:20~14:10)星期四5(12:20~13:10) 
上課地點
 
備註
上課教室:電電實驗室.
總人數上限:30人 
Ceiba 課程網頁
http://ceiba.ntu.edu.tw/972DataStruAlgo 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

此一課程特編針對生機系大學部同學設計, 旨於介紹多種常用之資料結構與相關演算法,增進修課學生的程式設計能力,以期未來能在不同領域實際應用。 

課程目標
本課程將搭配C++程式編輯,介紹多種可使用的資料結構,引領學生了解現有演算法,解決實際問題。 
課程要求
修過基本程式設計課程者佳(any language is fine, ext. C, C++, Java, Perl, ...) 
預期每週課後學習時數
 
Office Hours
每週四 14:20~15:20
每週一 17:30~18:30 
指定閱讀
 
參考書目
1. Robert Sedgewick, Algorithms in C++, Parts 1-4: Fundamentals, Data
Structure, Sorting, Searching (3rd Edition), Addison-Wesley Professional, 1998.
2. Elliot B. Koffman and Paul A. T. Wolfgang, Objects, Abstraction, Data
Structures and Design: Using C++, Wiley, 2005.
3. Sanjoy Dasgupta, Christos H. Papadimitriou, and Umesh Vazirani, Algorithms,
McGraw-Hill, 2006. (http://www.cs.berkeley.edu/~vazirani/algorithms.html)
 
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
期中考 
30% 
 
2. 
期末考 
30% 
 
3. 
作業 
40% 
 
 
課程進度
週次
日期
單元主題
第1週
02/17,02/19  Introduction 
第2週
02/24,02/26  An example problem: connectivity 
第3週
03/03,03/05  Principles of Algorithm Analysis, Basic recurrences 
第4週
03/10,03/12  Recurrences, examples of algorithm analysis 
第5週
03/17,03/19  Arrays, Linked Lists, Memory Allocation, Strings 
第6週
03/24,03/26  Lists, Stack, Queues 
第7週
03/31,04/02  ADT implementation (04/02 溫書假) 
第8週
04/07,04/09  Recursion, Divide and Conquer (4/9) 停課 
第9週
04/14,04/16  Divide and Conquer  
第10週
04/21,04/23  (4/21) Midterm, (4/23) Divide and Conquer  
第11週
04/28,04/30  Dynamic programming, Tree Traversal, Recursion 
第12週
05/05,05/07  Binary trees 
第13週
05/12,05/14  Tree and graph traversal 
第14週
05/19,05/21  Sorting 
第15週
05/26,05/28  Priority queue and heapsort (05/28) 端午節 
第16週
06/02,06/04  Greedy Algorithms, Minimum Spanning Trees 
第17週
06/09,06/11  Hashing 
第18週
06/16,06/18  (06/16) Final